Telegram Group & Telegram Channel
Python Hints
ابزار جدیدی از astral اومده به اسم uv جاگزینی خواهد بود برای pip, poetry, ... البته درحال حاضر خیلی خام هست ولی بطور خیره کننده‌ای سرعت بالایی داره حتما یک سری بهش بزنید. uv: Python packaging in Rust پ.ن: از cache یک سری پکیج هوش مصنوعی نصب کردم 0.35sec…
یکی از پروژه‌ها رو جابجا کردیم و اینطوری شد که:

بجای docker از podman استفاده بشه
بجای docker swarm, docker stack, ... هم از k8s استفاده بشه
ی مقدار قبلتر هم که همگی روی ruff و mypy رفته بودیم و pre-commit رو اینطوری تنظیم کردیم.

دیگه یکی از هم تیمی‌ها پیشنهاد داد یعنی یه uv مون نشه ؟

که سوییچ کردیم روی این مورد (البته قبلش کلی تست زمان build, ... ازش گرفتیم) دیدیم علاوه بر اینکه تایم بیلد رو آورد پایین‌تر (حتی تو بیلدهای اپتیمایز خودم) کار کردن باهاش هم نسبت به ورژن‌های قبلی خیلی بهتر و راحت‌تر شده.

اگر شما هم میخواید تستش کنید؛ من دستورات مهمش رو میذارم برای شروع برید سراغش باقی موارد هم که داکیومنت خودش هست :

uv python list
لیست از تمام ورژن‌های پایتون قابل نصب رو نشون میده؛ cpython, pypy رو داره.
uv python install 3.11 3.12 3.13 3.14
تمام ورژن‌های پایتون که بهشون اشاره شده رو نصب می‌کنه (حدود ۳۰-۳۵ مگ هست هر کدوم) دیفالت cpython نصب میشه.

uv init <dir_name>
این دستور پوشه <dir_name> رو براتون میسازه به همراه git, python version, readme, main, pyproject

uv init <dir_name> --lib
اگر خواستید پکیج برای انتشار بنویسید.
uv init
اگر مثل ما پروژه از قبل با مثلا pip ایجاد شده و می‌خواید بیاید روی uv داخل پوشه پروژه اجراش کنید.
uv add dajngo
پکیج django رو می‌خوام به پروژه اضافه کنم؛ حتی اگر .venv نساخته باشید این دستور بصورت پیشفرض اینکار رو براتون می‌کنه؛ که اشتباها روی python سیستم چیزی نصب نکنید.

uv tree
نمایش درختی معادل pip freeze هست.
uv run main.py
برای اجرا استفاده میشه (حتی اگر .venv رو پاک کرده باشید درجا ایجاد می‌کنه پکیج‌هارو نصب می‌کنه و بعد اجرا می‌کنه که اگر cache رو پاک نکرده باشید در حد میلی ثانیه زمان میبره)

uv venv --python 3.11.11
برای اینکه دقیقا از همین ورژن پایتون استفاده بشه (کلا توی همه کامندها می‌تونید از --python برای مشخص کردن ورژن دقیق استفاده کنید)
این دستور بهترین دستور برای بچه‌هایی هست که در زمینه AI تحقیق و کار می‌کنند.
uv sync
فقط .venv رو ایجاد و پکیج‌ها رو نصب می‌کنه (همه چیز آماده)
uv remove dajngo
برای حذف استفاده میشه.
uv add -r requirements.txt
جهت انتقال از pip به uv
uvx ruff
جایگزین عالی برای pipx
uv tool run ruff check
بدون اینکه ruff رو روی کل سیستم نصب کنید می‌تونید اجرا کنید
نکته این هست که uvx , uv tool دستورات یکسان هست و دستور بالا اینو می‌گه که نیازی نیست ابزار رو روی کل سیستم نصب کنی می‌تونی درجا اجرا و استفاده کنی؛ pipx اینو نداره که خیلی هم کاربردی هست.
uv self update
در نهایت برای آپدیت خود uv ازش استفاده کنید.


برای پروژه‌های غیر docker و شخصی هم خیلی خوبه چون disk کمتری مصرف می‌کنه (دوستان AI میدونند توی هر پروژه ورژن متفاوت pytorch و ... داشتن چقدر جا میگیره) یا حتی یک ورژن یکسان رو هی روی venv جدا نصب کردن. که uv اینکارو نمی‌کنه و به همون نسخه‌ای که دارید symlink میزنه. (بصورت دیفالت hardlink میزنه؛ دوستان اشاره کردند)


الان تنها مورد کند پروژه‌ای که صحبتش شد mypy هست که خب منتظریم ببینیم ty وضعیتش به کجا خواهد رسید بخصوص اینکه LSP هم هست و یک تیر و دو نشان خواهد بود.

ty github



tg-me.com/pyHints/823
Create:
Last Update:

یکی از پروژه‌ها رو جابجا کردیم و اینطوری شد که:

بجای docker از podman استفاده بشه
بجای docker swarm, docker stack, ... هم از k8s استفاده بشه
ی مقدار قبلتر هم که همگی روی ruff و mypy رفته بودیم و pre-commit رو اینطوری تنظیم کردیم.

دیگه یکی از هم تیمی‌ها پیشنهاد داد یعنی یه uv مون نشه ؟

که سوییچ کردیم روی این مورد (البته قبلش کلی تست زمان build, ... ازش گرفتیم) دیدیم علاوه بر اینکه تایم بیلد رو آورد پایین‌تر (حتی تو بیلدهای اپتیمایز خودم) کار کردن باهاش هم نسبت به ورژن‌های قبلی خیلی بهتر و راحت‌تر شده.

اگر شما هم میخواید تستش کنید؛ من دستورات مهمش رو میذارم برای شروع برید سراغش باقی موارد هم که داکیومنت خودش هست :

uv python list
لیست از تمام ورژن‌های پایتون قابل نصب رو نشون میده؛ cpython, pypy رو داره.
uv python install 3.11 3.12 3.13 3.14
تمام ورژن‌های پایتون که بهشون اشاره شده رو نصب می‌کنه (حدود ۳۰-۳۵ مگ هست هر کدوم) دیفالت cpython نصب میشه.

uv init <dir_name>
این دستور پوشه <dir_name> رو براتون میسازه به همراه git, python version, readme, main, pyproject

uv init <dir_name> --lib
اگر خواستید پکیج برای انتشار بنویسید.
uv init
اگر مثل ما پروژه از قبل با مثلا pip ایجاد شده و می‌خواید بیاید روی uv داخل پوشه پروژه اجراش کنید.
uv add dajngo
پکیج django رو می‌خوام به پروژه اضافه کنم؛ حتی اگر .venv نساخته باشید این دستور بصورت پیشفرض اینکار رو براتون می‌کنه؛ که اشتباها روی python سیستم چیزی نصب نکنید.

uv tree
نمایش درختی معادل pip freeze هست.
uv run main.py
برای اجرا استفاده میشه (حتی اگر .venv رو پاک کرده باشید درجا ایجاد می‌کنه پکیج‌هارو نصب می‌کنه و بعد اجرا می‌کنه که اگر cache رو پاک نکرده باشید در حد میلی ثانیه زمان میبره)

uv venv --python 3.11.11
برای اینکه دقیقا از همین ورژن پایتون استفاده بشه (کلا توی همه کامندها می‌تونید از --python برای مشخص کردن ورژن دقیق استفاده کنید)
این دستور بهترین دستور برای بچه‌هایی هست که در زمینه AI تحقیق و کار می‌کنند.
uv sync
فقط .venv رو ایجاد و پکیج‌ها رو نصب می‌کنه (همه چیز آماده)
uv remove dajngo
برای حذف استفاده میشه.
uv add -r requirements.txt
جهت انتقال از pip به uv
uvx ruff
جایگزین عالی برای pipx
uv tool run ruff check
بدون اینکه ruff رو روی کل سیستم نصب کنید می‌تونید اجرا کنید
نکته این هست که uvx , uv tool دستورات یکسان هست و دستور بالا اینو می‌گه که نیازی نیست ابزار رو روی کل سیستم نصب کنی می‌تونی درجا اجرا و استفاده کنی؛ pipx اینو نداره که خیلی هم کاربردی هست.
uv self update
در نهایت برای آپدیت خود uv ازش استفاده کنید.


برای پروژه‌های غیر docker و شخصی هم خیلی خوبه چون disk کمتری مصرف می‌کنه (دوستان AI میدونند توی هر پروژه ورژن متفاوت pytorch و ... داشتن چقدر جا میگیره) یا حتی یک ورژن یکسان رو هی روی venv جدا نصب کردن. که uv اینکارو نمی‌کنه و به همون نسخه‌ای که دارید symlink میزنه. (بصورت دیفالت hardlink میزنه؛ دوستان اشاره کردند)


الان تنها مورد کند پروژه‌ای که صحبتش شد mypy هست که خب منتظریم ببینیم ty وضعیتش به کجا خواهد رسید بخصوص اینکه LSP هم هست و یک تیر و دو نشان خواهد بود.

ty github

BY Python Hints


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/pyHints/823

View MORE
Open in Telegram


Python Hints Telegram | DID YOU KNOW?

Date: |

Why Telegram?

Telegram has no known backdoors and, even though it is come in for criticism for using proprietary encryption methods instead of open-source ones, those have yet to be compromised. While no messaging app can guarantee a 100% impermeable defense against determined attackers, Telegram is vulnerabilities are few and either theoretical or based on spoof files fooling users into actively enabling an attack.

In many cases, the content resembled that of the marketplaces found on the dark web, a group of hidden websites that are popular among hackers and accessed using specific anonymising software.“We have recently been witnessing a 100 per cent-plus rise in Telegram usage by cybercriminals,” said Tal Samra, cyber threat analyst at Cyberint.The rise in nefarious activity comes as users flocked to the encrypted chat app earlier this year after changes to the privacy policy of Facebook-owned rival WhatsApp prompted many to seek out alternatives.Python Hints from vn


Telegram Python Hints
FROM USA